
#ifndef CUSTOM_COMPARATOR_H
#define CUSTOM_COMPARATOR_H

// INCLUDES ********************************************************************

#include "GraphicObject.h"

#include <iostream>

// FORWARD DECLARATIONS ********************************************************

// CONSTANTS *******************************************************************

// *****************************************************************************

//! CustomComparator
//! 
//! Class for custom comparations with non built-in types.

// *****************************************************************************

namespace Meteor
{
    template<typename T, class Comparator = std::less<T> > 
    struct CustomComparator
    {
        public:
            const bool operator()( const T* const lhs, const T* const rhs ) const 
            { 
                return comp( lhs, rhs);
            } 
        
        private: 
            Comparator comp;
    
    }; // end of struct CustomComparator
    
} // end of namespace Meteor

#endif
